1. The Field of the Invention
The present invention relates to systems and methods for providing an updated printer configuration to an external device. More specifically, the present invention relates to systems and methods that automatically provide printer configuration updates to an external communications device during initialization of a printer and during operation of the printer.
2. The Relevant Art
As computer systems increase in complexity and functionality, increased demands are being placed on the printers and printing systems that service those computer systems. Printers are thus, out of necessity, becoming more sophisticated. Compatibility of the printers with the various types of devices that may need to communicate with the printers and compatibility with the various mediums over which the printers communicate with the devices are similarly a pressing issues in printer development.
For instance, a printer may be required to communicate not only with a large number of computers over a network or other communications medium, but also with many different types of computers. Computer networks in large organizations may, for instance, include mainframe server computers, work station computers, and PC computers. These computers may be of differing origins and may operate with different protocols. In the past, printers interfaced with these computers through a dedicated print server computer. The dedicated print server computer handled the formatting of data streams for the printer and presented the data stream to the printer in a form compatible with the printer.
More recently, these dedicated print server computers have been replaced in some instances with network interface cards. The network interface cards handle the tasks of communications over the network for the printer and may also conduct data stream formatting for the computer. In some cases, the network interface cards must convert the data stream from a protocol native to the computer to a protocol compatible with the printer. For instance, IBM""s OS/390-based mainframe has in the past used a xe2x80x9ccoaxxe2x80x9d interface prior to the advent of Ethernet and token ring network conventions. These computers are programmed to communicate with a printer using an SCS protocol, while many modern printers are programmed to understand only a PCL protocol. In order for such computers to communicate with such printers while possibly also allowing other computers programmed to use other standards and protocols to communicate with the printers, protocol conversion is used. In the given instance, the protocol converters convert the SCS data stream from the OS/390 machine to the PCL protocol. Other types of data stream protocol conversion also occur.
In order for the protocol conversion to be fully successful, an up-to-date knowledge of the configuration of the printer is necessary. Thus, the computer or interface device conducting the protocol conversion needs to have access to a configuration listing for the printer. This configuration listing is generally transmitted from the printer to the interface device at power-up of the printer. The interface device stores this configuration listing and uses it in the protocol conversion and for other formatting of data streams to be passed to the printer. Providing the configuration listing has proven burdensome in many cases, particularly in the development of new printers. For each new printer that is developed, a new configuration listing must be generated and coded, and the code in both the printer and the interface device that accesses the configuration listing must also be reprogrammed to accept the new listing. Such programming is time-consuming and accordingly, quite expensive.
In addition, certain aspects of the printer itself may change during operation. For instance, input and output trays may be swapped, added, or removed. The type of paper in a tray or that a tray can handle may change. Other similar changes may be conducted during operation and after power-up and initialization of the configuration listing. Interface devices lacking this current configuration information may cause an undesired result at the printer, including printing on the wrong type of paper, to the wrong tray, or simply an error condition.
From the above discussion, it is apparent that an improved printer communication system is needed that reduces the burden of reprogramming the configuration of a new printer into the system. Additionally, an improved printer communication system is needed that is capable of providing printer configuration updates to a communicating device during operation of the printer.
The printer configuration system and method of the present invention have been developed in response to the present state of the art, and in particular, in response to the problems and needs in the art that have not yet been fully solved by currently available printer systems. Accordingly, it is an overall object of the present invention to provide a printer configuration update system and method that overcome many or all of the above-discussed shortcomings in the art.
To achieve the foregoing object, and in accordance with the invention as embodied and broadly described herein in the preferred embodiment, a printer configuration update system for automatically providing an updated printer configuration between a printer and a communicating device is provided. In disclosed embodiments, the system comprises a configuration detector module configured to receive notification of a new printer configuration; a configuration manager configured to update a configuration listing of the new printer configuration; and a communication module configured to provide notification of the new configuration to a communicating device that is configured to transact external communications for the printer. The communicating device may be a network card and/or a protocol converter.
The printer configuration update system may also comprise a configuration update module residing on the communicating device. The configuration update module may be configured to interpret the configuration listing. In addition, a shared memory residing on a controller of the printer may be provided for use in passing the configuration listing to the communicating device. A handshaking register may be resident on the communicating device, and may be configured for use in effecting communications between the printer and the communicating device.
The printer configuration update system may also comprise a communications channel between the printer and the communicating device. Preferably, the communications channel operates under the PCI interface protocol. The communicating device may be a network interface card comprising a protocol converter. The configuration listing may comprise a dynamic configuration structure with a variable length.
A method of automatically providing an updated printer configuration between a printer and a communicating device is also provided as part of the present invention and may be used in conjunction with the printer configuration update system of the present invention. In one embodiment, the method comprises detecting internally within a printer a new printer configuration; recording the new printer configuration; and notifying a communicating device that is configured to transact external communications for the printer of the new printer configuration.
The step of detecting a new printer configuration may comprise detecting a new printer attached to the communicating device. Alternatively, the step of detecting a new printer configuration may comprise detecting a modification of a configuration of a printer already connected to the communicating device. Of course, both types of detection may in occur during the life of a printer in selected embodiments.
In one embodiment, the communicating device comprises an interface card for conducting network communications for the printer. The communicating device may also comprise a protocol converter for converting one data stream (printer language) to another data stream having a protocol which is compatible with the printer. Thus, the method may comprise, for instance, converting a SCS data stream into a PCL data stream by the protocol converter.
The new printer configuration may comprise a modification of a printer tray, and recording the change in configuration may comprise updating a configuration listing. Preferably, the configuration listing is a variable-length, dynamic structure and may comprise both static-length and dynamic-length counterparts.
Thus, the method may comprise providing both the static-length and dynamic-length counterparts during an initialization of the printer, and may also comprise subsequently updating one or both of the static-length and dynamic-length counterparts during operation of the printer in response to a new printer configuration occurring during the operation of the printer.
The method may comprise providing the configuration listing in a data stream of at least three components. A first component identifies the configuration listing. A second component specifies the length of the configuration listing, and a third component contains the configuration data. The configuration data may comprise fields listed in a predetermined order. Each field may contain a parameter of the printer configuration according to a selected protocol. The method may also comprise the communicating device accessing the configuration listing by a direct memory access to a shared memory resident on the printer.
Attaching a new printer to the communicating device may comprise providing a new model of printer with a new configuration. The new printer may be attached to the communicating device without programming code individual to the new model of printer. That is, under the present invention, new code in the printer or communicating device need not be programmed to communicate the new printer""s configuration to the communicating device.